package edu.suda.LoopCodePlus.mapper;

import edu.suda.LoopCodePlus.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
@Mapper
public interface UserMapper {
    /** 用户注册时插入数据库 */
    void insert_regUser(User user);


    /** 用户登录时查询数据库 */
    User select_loginUser(User user);
    /** 查询所有用户 */
    List<User> select_allUser();
    /** 根据用户id查询用户 */
    User select_userById(Integer id);
    /** 通过邮箱寻找用户 */
    User select_userByEmail(String email);

    /** 根据用户id删除用户 */
    boolean delete_userById(Integer id);


    /** 1.修改用户邮箱 */
    void update_userEmail(@Param("regMail") String regMail, @Param("userId") Integer userId);
    /** 2.修改用户密码 */
    void update_userPasswd(@Param("passwd") String passwd,@Param("userId") Integer userId);
    /** 3.修改用户头像 */

    void update_userAvatar(@Param("avatar") String avatar,@Param("userId") Integer userId);
    /** 4.修改用户头像框 */
    void update_userAvatarFrame(@Param("avatarFrame") String avatarFrame,@Param("userId") Integer userId);
    /** 5.修改用户昵称 */
    void update_userNickName(@Param("nickName") String nickName,@Param("userId") Integer userId);
    /** 6.修改用户积分 */
    void update_userPoint(@Param("point") Integer point,@Param("userId") Integer userId);
    /** 7.修改用户状态 */
    void update_userStatus(@Param("status") Integer status,@Param("userId") Integer userId);
    /** 8.修改用户称号 */
    void update_userTitle(@Param("title") String title,@Param("userId") Integer userId);
    /** 9.修改用户是否已读 */
    void update_userIsRead(@Param("isRead") Boolean isRead,@Param("userId") Integer userId);
    /** 10.修改用户角色 */
    void update_userRole(@Param("role") String role,@Param("userId") Integer userId);
}
